home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / epp / pmodules / maxmem.e < prev    next >
Text File  |  1980-01-05  |  972b  |  33 lines

  1. OPT TURBO
  2.  
  3. MODULE 'exec/execbase',
  4.        'exec/lists',
  5.        'exec/memory',
  6.        'exec/nodes'
  7.  
  8. PROC mm_succFrom(listNode:PTR TO ln) RETURN listNode.succ
  9.  
  10. PROC maxMem(memType)
  11. /*
  12. **  Calculate max memory of type memType.  memType will be either
  13. **  MEMF_CHIP for chip memory, or MEMF_FAST for fast memory.  The
  14. **  memory is gotten from the memList in execbase, which is a list
  15. **  of memory available to the system.
  16. */
  17.   DEF execBase:PTR TO execbase, blockSize=0,
  18.       memHeader:PTR TO mh, memList:PTR TO lh
  19.   Forbid()
  20.   /*-- Break down execBase. --*/
  21.   execBase:=execbase
  22.   memList:=execBase.memlist
  23.   memHeader:=memList.head
  24.   /*-- Follow the memlist to accumulate total ram of type memType. --*/
  25.   WHILE mm_succFrom(memHeader.ln)  /* MemHeader.mh_Node.ln_Succ */
  26.     IF memHeader.attributes AND
  27.        memType THEN blockSize:=blockSize+memHeader.upper-memHeader.lower
  28.     memHeader:=mm_succFrom(memHeader.ln)
  29.   ENDWHILE
  30.   Permit()
  31. ENDPROC blockSize
  32.   /* maxMem */
  33.